/*******************************************************************************************
 *  Direction.h
 *
 *  Creating and managing Direction object structures.
 *
 *******************************************************************************************/







/*******************************************************************************************
 *  INCLUDES :
 *******************************************************************************************/
#include "BulletMLConsts.h"
#include "BulletMLTypes.h"







/*******************************************************************************************
 *  TYPE definitions :
 *******************************************************************************************/

/*****************************************************/
/* The different type a DIRECTION object can have :  */
/*****************************************************/
#ifndef _DIR_TYPE_ENUM_
#define _DIR_TYPE_ENUM_
typedef enum {aim_dir, absolute_dir, relative_dir, sequence_dir} DirType;
#endif



/*****************************************************/
/* The DIRECTION object strucuture definition :      */
/*****************************************************/
#ifndef _DIRECTION_STRUCT_
#define _DIRECTION_STRUCT_
typedef struct {

	ObjType		otype;						/* The object's type, as in ...  */
											/* ... the BML type enum.        */

	DirType		type;						/* The direction object's type   */

	char		*value;						/* The direction object's value. */

} Direction;
#endif







/*******************************************************************************************
 *  Function PROTOTYPES :
 *******************************************************************************************/

/* CONSTRUCTOR and DESTRUCTOR : */
Direction	*newDirection(void);			/* Creates an empty Direction object structure. */
void 		freeDirection(Direction *d);	/* Destroys a Direction object structure.       */ 


/* FILLING the Action object structure : */
void		setDirectionType(Direction *d, DirType t);
void		setDirectionValue(Direction *d, char *value);
